package JZ_Offer.algorithm.other.字符串;

/**
 * 在一个字符串(0<=字符串长度<=10000，全部由字母组成)中找到第一个只出现一次的字符,
 * 并返回它的位置, 如果没有则返回 -1（需要区分大小写）.（从0开始计数）
 */
public class JZ50_第一个只出现一次的字符位置 {
    public static int FirstNotRepeatingChar(String str) {
        // 这道题的突破点就是 Ascii 码（有256个字符，并可以使用十进制表示字符）
        byte[] count = new byte[256];

        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            count[c]++;
        }

        for (int i = 0; i < str.length(); i++) {
            if (count[str.charAt(i)] == 1) {
                return i;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        String str = "unenthusiastically";
        int i = FirstNotRepeatingChar(str);
        System.out.println(i);
    }
}
